package adventure.placeable;

import player.Player;

/**
 *
 * @author Michael Hanns
 *
 */
public interface Mobile extends Placeable {

    public int x();
    public int y();
    public int z();

    public String getAliveName();
    public String getHealthStatus();

    public int getMaxHealth();
    public int getLevel();
    public int getAttack();
    public int getDefence();
    public int getSpeed();
    public int getLuck();

    public boolean isFighting(int id);

    public void stopFighting(Player victim);

    public boolean isDead();
    public boolean isNearlyDead();
    public boolean isAggro();
    public boolean isAggro(int p);
    public boolean hasHealingPotion();
    
    public boolean isImmortal();
    public boolean isVendor();
    public double getVendorModifier();

    public void setAggro(Player p);
    public String drinkHealingPotion();

    public int getCurrencyContents();

    public Item getInventoryItem(int index);
    public void addInventoryItem(Item i);
    public Item takeInventoryItem(int index);
    public Item takeInventoryItem(Item item);
    public int takeCurrencyAmount(int quant);
    public void addCurrencyAmount(int quant);

    public Mobile cloneThis();

}
